package org.jeecg.modules.yinsheng.command.wypay;

import org.jeecg.modules.yinsheng.annotation.NotBlank;
import org.jeecg.modules.yinsheng.command.base.BaseBizReqCommand;

import java.io.Serializable;

public class WyPayRequestCommand extends BaseBizReqCommand implements Serializable {

    /**
     * TODO
     */
    private static final long serialVersionUID = -8358627123306830014L;

    // M 业务请求号
    @NotBlank(message = "业务请求号不能为空")
    private String requestNo;

    // M 收款方银盛商户号
    @NotBlank(message = "收款方银盛商户号不能为空")
    private String payeeMerchantNo;

    // M 商品名称/订单标题
    @NotBlank(message = "商品名称/订单标题不能为空")
    private String orderDesc;

    // M 交易金额，单位：元 取值范围：0.01-999999.99
    @NotBlank(message = "交易金额不能为空")
    private String amount;

    // 银行行别
    @NotBlank(message = "银行行别不能为空")
    private String bankType;

    //银行账户类型
    @NotBlank(message = "银行账户类型不能为空")
    private String bankAccountType;


    //支付方式
    //01-PC网银支付（默认值）
    //11-手机网银支付
    private String payMode;

    //重定向链接，支付成功后重定向到此链接
    private String redirectUrl;

    // 支付成功结果异步通知地址，为空则不通知
    //支持多个url，url之间用分隔符“,”分开
    private String notifyUrl;

    //支付失败结果异步通知地址，为空则不通知
    //支持多个url，url之间用分隔符“,”分开
    private String notifyUrlByFail;

    // 是否支持信用卡支付，默认值：Y
    //Y-支持  N-不支持
    private String supportCards;

    // O 交易类型 01-即时交易（默认值） 02-担保交易
    private String tranType;

    // O 是否分账，未开通分账功能或交易类型为担保交易时此参数无作用 Y-是（需调用分账登记接口进行分账） N-否（直接入账到收款方账户）
    private String isDivision;



    // O 订单有效期，单位：分钟此参数需开通白名单配置后生效 默认支付有效时间为7天
    private String timeOut;
    //扩展参数，商户自定义数据域，原样返回
    //此字段需开通权限后生效
    private  String extendParams;

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getRequestNo() {
        return requestNo;
    }

    public void setRequestNo(String requestNo) {
        this.requestNo = requestNo;
    }

    public String getPayeeMerchantNo() {
        return payeeMerchantNo;
    }

    public void setPayeeMerchantNo(String payeeMerchantNo) {
        this.payeeMerchantNo = payeeMerchantNo;
    }

    public String getOrderDesc() {
        return orderDesc;
    }

    public void setOrderDesc(String orderDesc) {
        this.orderDesc = orderDesc;
    }

    public String getAmount() {
        return amount;
    }

    public void setAmount(String amount) {
        this.amount = amount;
    }

    public String getBankType() {
        return bankType;
    }

    public void setBankType(String bankType) {
        this.bankType = bankType;
    }

    public String getBankAccountType() {
        return bankAccountType;
    }

    public void setBankAccountType(String bankAccountType) {
        this.bankAccountType = bankAccountType;
    }

    public String getPayMode() {
        return payMode;
    }

    public void setPayMode(String payMode) {
        this.payMode = payMode;
    }

    public String getRedirectUrl() {
        return redirectUrl;
    }

    public void setRedirectUrl(String redirectUrl) {
        this.redirectUrl = redirectUrl;
    }

    public String getNotifyUrl() {
        return notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getNotifyUrlByFail() {
        return notifyUrlByFail;
    }

    public void setNotifyUrlByFail(String notifyUrlByFail) {
        this.notifyUrlByFail = notifyUrlByFail;
    }

    public String getSupportCards() {
        return supportCards;
    }

    public void setSupportCards(String supportCards) {
        this.supportCards = supportCards;
    }

    public String getTranType() {
        return tranType;
    }

    public void setTranType(String tranType) {
        this.tranType = tranType;
    }

    public String getIsDivision() {
        return isDivision;
    }

    public void setIsDivision(String isDivision) {
        this.isDivision = isDivision;
    }

    public String getTimeOut() {
        return timeOut;
    }

    public void setTimeOut(String timeOut) {
        this.timeOut = timeOut;
    }

    public String getExtendParams() {
        return extendParams;
    }

    public void setExtendParams(String extendParams) {
        this.extendParams = extendParams;
    }
}
